<?php

/**
 * ThinkAPI 运行时文件
 * @category   ThinkAPI
 * @package  Common
 * @author   sunguide@qq.com
 */
defined('CORE_PATH') or exit();
ini_set("error_reporting",E_ALL);
if(version_compare(PHP_VERSION,'5.2.0','<'))  die('require PHP > 5.2.0 !');

//  版本信息
define('THINK_VERSION', '3.1.3');

//   系统信息
if(version_compare(PHP_VERSION,'5.4.0','<')) {
    ini_set('magic_quotes_runtime',0);
    define('MAGIC_QUOTES_GPC',get_magic_quotes_gpc()?True:False);
}else{
    define('MAGIC_QUOTES_GPC',false);
}
define('IS_CGI',substr(PHP_SAPI, 0,3)=='cgi' ? 1 : 0 );
define('IS_WIN',strstr(PHP_OS, 'WIN') ? 1 : 0 );
define('IS_CLI',PHP_SAPI=='cli'? 1   :   0);

// 项目名称
defined('APP_NAME') or define('APP_NAME', basename(dirname($_SERVER['SCRIPT_FILENAME'])));

if(!IS_CLI) {
    // 当前文件名
    if(!defined('_PHP_FILE_')) {
        if(IS_CGI) {
            //CGI/FASTCGI模式下
            $_temp  = explode('.php',$_SERVER['PHP_SELF']);
            define('_PHP_FILE_',    rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/'));
        }else {
            define('_PHP_FILE_',    rtrim($_SERVER['SCRIPT_NAME'],'/'));
        }
    }
    if(!defined('__ROOT__')) {
        // 网站URL根目录
        if( strtoupper(APP_NAME) == strtoupper(basename(dirname(_PHP_FILE_))) ) {
            $_root = dirname(dirname(_PHP_FILE_));
        }else {
            $_root = dirname(_PHP_FILE_);
        }
        define('__ROOT__',   (($_root=='/' || $_root=='\\')?'':$_root));
    }
}

// 路径设置 可在入口文件中重新定义 所有路径常量都必须以/ 结尾

defined('COMMON_PATH')  or define('COMMON_PATH',    APP_PATH.'Common/'); // 项目公共目录
defined('LIBS_PATH')     or define('LIBS_PATH',     APP_PATH.'Libs/'); // 项目类库目录
defined('CONF_PATH')    or define('CONF_PATH',      APP_PATH.'Conf/'); // 项目配置目录
defined('DATA_PATH')    or define('DATA_PATH',      RUNTIME_PATH.'Data/'); // 项目数据目录


// 加载运行时所需要的文件 并负责自动目录生成
function load_runtime_file() {
    // 加载系统基础函数库
    require CORE_PATH.'Common/common.php';
	require CORE_PATH.'Common/functions.php';
    // 读取核心文件列表
    $list = array(
		CORE_PATH.'Libs/Dispatcher.class.php',
        CORE_PATH.'Libs/Controller.php',
		
        //CORE_PATH.'Libs/ThinkException.class.php',  // 异常处理类
    );
    // 加载模式文件列表
    foreach ($list as $key=>$file){
        if(is_file($file))  require_once($file);
    }
	
}


	

// 加载运行时所需文件
load_runtime_file();
// 执行入口
Controller::run();